﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using clBD;
using clEntidad;
using System.Data.OleDb;
using clEntidad.Ex;

namespace clBUS
{
    public class BUSLocal:BUSBase
    {
        public BUSLocal(String cadBD) : base(cadBD) { }
        public Local get(int id)
        {
            using (OleDbConnection cn = getCn())
            {
                return new BDLocal(cn).get(id);
            }
        }
        public List<Local> getAll()
        {
            using (OleDbConnection cn = getCn())
            {
                return new BDLocal(cn).getAll();
            }
        }
        public Local add(Local elem)
        {
            using (OleDbConnection cn = getCn())
            {
                try
                {
                    return new BDLocal(cn).add(elem);
                }
                catch (OleDbException ex)
                {
                    if (ex.ErrorCode == -2147467259)
                        throw new BUSException("Ya existe otro local con los mismos datos, por favor validar");
                    else
                        throw ex;
                }

            }
        }
        public void del(int id)
        {
            using (OleDbConnection cn = getCn())
            {
                try
                {
                    new BDLocal(cn).del(id);
                }
                catch (OleDbException ex)
                {
                    if (ex.ErrorCode == -2147467259)
                        throw new BUSException("No se puede eliminar local, existen elementos relacionados");
                    else
                        throw ex;
                }
            }
        }
        public void upd(Local elem)
        {
            using (OleDbConnection cn = getCn())
            {
                try
                {
                    new BDLocal(cn).upd(elem);
                }
                catch (OleDbException ex)
                {
                    if (ex.ErrorCode == -2147467259)
                        throw new BUSException("Ya existe otro local con los mismos datos, por favor validar");
                    else
                        throw ex;
                }
            }
        }

    }
}
